<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 日期对象(Date对象) 用于处理日期和时间，Date对象记录着从1970年1月1日00:00:00开始以来的毫秒数。
    // GMT (UTC)  世界时   => 格林威治时间  从1970年1月1日00:00:00开始以来的毫秒数。


    // Date对象的创建和设置  => 构造函数创建

    // 如何获取当前时间?
    // var date = new Date();
    // console.log(date);

    // 如何设置指定时间
    // (1) 传入一个日期格式的字符串  "2022/6/10 18:20:00:100"
    // 优点: 传入的时间 就是 用户期望的时间
    // 缺点: 传入的时间必须在有效范围内 => 否则就显示无效日期

    // var date = new Date("2022/6/18");
    // var date = new Date("2022/6/18 18:20:33");
    // console.log(date);

    // var date = new Date("2022/6/32 18:20:33");  // Invalid Date
    // console.log(date);

    // (2) 多参数传参 => 分别指定年月日 时分秒 毫秒
    // 注意: 月份参数: 0 - 11    => 月份参数 = 期望的月份 - 1
    // 优点: 超出临界值会自动换算   (超出最大值 进一位,小于最小值 借一)
    // 缺点: 月份参数: 0 - 11

    // var date = new Date(2022, 5, 18, 18, 20, 33);
    // console.log(date);

    // var date = new Date(2022, 5, 32, 18, 20, 33); // 2022-6-32 => 2022-7-2
    // console.log(date);

    // var date = new Date(2022, 5, 0, 18, 20, 33); // 2022-6-0 => 2022-5-31
    // console.log(date);

    // 注意:
    // 本月的第0天,就是上个月的最后一天  => 上个月有多少天
    // 下个月的第0天,就是本月的最后一天  => 本月有多少天


    // (3) new Date(ms) 只接收一个number类型的参数 => 作为毫秒数(1970年1月1日00:00:00开始以来的毫秒数。)
    // var date = new Date(0);
    // console.log(date);

    // var date = new Date(1000000000000);
    // console.log(date);

    // var date = new Date(-1000000000000);
    // console.log(date);

    // (4) new Date()  也可以接收一个日期对象作为参数 => 得到一个与原日期对象 时间相同的 新日期对象  (后期会设置年月日 时分秒 => 影响原日期对象  => 为了不影响 => 得到一个与原日期对象 时间相同的 新日期对象 )

    var now = new Date();
    console.log(now);

    var date = new Date(now);
    console.log(date);

    console.log(date === now);








</script>

</html>